package org.ttitfly.workflow.handler.adapter;

import org.ttitfly.workflow.handler.Handler;

/**
 * 处理程序适配器，通过处理程序适配器，可以将任意对象适配成<code>Handler</code>对象。
 * 
 * <p>
 * 客户端通常先调用 {@link #support(Object)}方法验证是否支持目标对象，如果返回true才考虑调用
 * {@link #adaptee(Object)} 方法适配成Handler，否则可能导致一个意想不到的结果。
 * </p>
 * 
 * @author 潘海春
 * @version 2009-9-11
 */
public interface HandlerAdapter {

	/**
	 * 是否支持该对象适配
	 * 
	 * @param handler
	 *            目标对象
	 * @return <code>true</code>：表示支持目标对象，<code>false</code>表示不支持该对象
	 */
	boolean support(Object handler);

	/**
	 * 将目标对象适配成Handler
	 * 
	 * @param handler
	 *            将被适配的目标对象
	 * @return
	 */
	Handler adaptee(Object handler);
}
